Software upon which corporations or other large institutions depend so that their business or other transactional “flows” may be performed in an automated fashion often refer to “schemas”. A schema defines the organization and/or structure of a body of information. For example, a schema may be used to define the organization and/or structure of a database, a message or a document in terms of specific fields that are entertained by the database, message or document; and, specific relationships that exist amongst the fields. For example, FIG. 1 shows an exemplary schema 101 for a database, message or document that keeps track of the purchase orders placed by “Customer_X”. The schema 101 includes a goods field 102 that keeps track of goods purchased by Customer_X, a services field 106 that keeps track of services purchased by Customer_X and a Date/Time field 107 that keeps track of the precise date and time that any goods or services are purchased by Customer_X.
The exemplary schema 101 of FIG. 1 also illustrates additional definitional matter that corresponds to further refinement of the goods field 102. In particular, the additional definitional matter includes a Part Number (P/N) field 103 which is further defined by a Quantity (QTY) field 104 and a Dollars Per Unit ($/ea.) field 105. For the sake of example, the P/N field 103 may be assumed to at least include an entry for a specific part number that Customer_X might order at any time (e.g., part number “42F1476” which is used to track a specific widget model). The QTY field is used to track the number of units for that specific part number ordered by Customer_X (e.g., how many units of the “42F1476” widget has Customer_X ordered). The $/ea. field is used to track the specific price that Customer_X has agreed to pay for the ordered units of the specific part number (e.g., the price per unit of the “42F1476” widget at the quantity ordered).
Note that the interconnections between fields 102-105 suggest some form of relationship in the sense that the P/N describes a type of good; and, the QTY and $/ea. fields 104, 105 are used to track the quantities and purchase price for the specific type of good having part number “P/N”. Significantly more complex definition would be expected in a typical implementation (e.g., where thousands of different part numbers and services are tracked). As a basic example of an automated inter-business flow, Customer_X may execute software that automatically orders specific part numbers in specific quantities at specific prices. Here, for a specific order made by Customer_X of widgets having the part number tracked by the P/N field 103, the QTY field 104 and the $/ea. field 105 would be used to record the quantity ordered and the price per unit for the specific purchase. By so tracking this information, a supplier that executes software that includes schema 101 can automatically track the orders placed by Customer_X for the specific part number “P/N”.
The supplier may moreover be retrofitted with sophisticated intra-business software that causes the supplier to automatically perform internal software based transactions/flows as a consequence of an order made by Customer_X. For example, the order made by Customer_X may cause the supplier's intra-business software to trigger notification to the supplier's warehouse that a QTY of P/N should be sent to Customer_X. Further still, referring to FIG. 2, the order made by Customer_X that is recorded in schema 101 may be used to update another schema 201 that is used by the supplier to automatically generate invoices for Customer_X. Note that schema 201 is a different schema than schema 101 because different fields and/or relationships are observed (e.g., the invoice schema 201 includes a “sub-total” field 206 that is not tracked by the orders schema 101; the backbone of the invoice schema's 201 organization is the date and time field 202, etc.).
Nevertheless, there is a great deal of overlap with respect to the informational content of the two schema 101, 201. That is, like the order schema 101, the invoice schema 201 includes: 1) a date and time field 202 for a particular order; 2) a P/N field that identifies the specific P/N ordered; 3) a QTY field 204 that identifies the amount ordered; and, 4) a $/ea. field 205 that identifies the price for the amount ordered. Here the informational overlap between the two schema 101, 201 reflects the fact that much of the same information used to define an order can also be used to generate an invoice (i.e., date and time, part number, quantity, and price).
A well-known technique in the automated business software arts, referred to as “mapping”, is used to transfer information from a “source” schema to a “target” schema. To be more precise, when diagrammed for the purposes of understanding the information flow(s) at play, mapping is viewed as the transfer of information from a source schema to a target schema. However, in actual implementation (e.g., during the actual operation of an automated business software program), mapping involves the transfer of information from a first body of information defined by a first schema (e.g., a “source” schema) to a second body of information defined by a second schema (e.g., a “target” schema). For convenience, the present Background discussion and the following Detailed Description discussion largely refer to the diagramming perspective where mapping is viewed as a transfer of information from a source schema to a target schema.
Mapping is often used to ensure that various schemas having informational content overlap are kept abreast of changes or updates to the overlapping information. The situational example of FIG. 2 represents a good example of the usefulness of mapping. Here, by mapping the date and time, part number, quantity and price fields from the “source” order schema 101 to the “target” invoice schema 201, the software responsible for invoicing a client is automatically updated with the information necessary to generate an invoice for a new order. Note that each of the individual mappings 207, 208, 209, 210 that would be specified and executed by the supplier's automated business software is illustrated in FIG. 2. Complications may arise, however, if some form of transformation is to be made to information being mapped between schema.
FIG. 3 shows an example of such a transformation by way of example. Here, assume that a purchase order is placed by a U.S. division of Customer_X and is therefore specified in U.S. dollars (as tracked by the $/ea. field 105). Nevertheless, Customer_X is a French company who expects to be invoiced in terms of French francs and not U.S. dollars. An invoicing schema 301 used to automatically generate invoices for Customer X should therefore specify purchase prices in Francs per unit (Fr./ea.) rather than U.S. dollars per unit ($/ea.); and, moreover, a transformation 312 is needed to covert a $/ea. field 105 entry from the source “order” schema 101 to a Fr./ea. field 305 entry for the “target” invoice schema 301. Note that the part number 103, 303, quantity 104, 304 and date and time 105, 302 field entries do not require transformation between the source and target schema 101, 301; and, therefore, their corresponding mappings 307, 308, 309 are “clean” or “direct” as first illustrated with respect to FIG. 2 (i.e., each mapping links a source field to a target field without transformation).
By contrast, the “mapping” used to generate the entry into the Fr./ea. field 305 is not “clean” or “direct” in that a “dollars-to-francs” transformation 312 is involved. Moreover, a “dollars-to-francs” transformation 312 is apt to be based on an exchange rate; which, in turn, is apt to be based on the specific date and time 107 of the purchase order. FIG. 3 demonstrates the additional complexity posed by the transformation 312 in the sense that the date and time field 107 entry is not only used to map “directly” to the target date and time field 302 entry but also is used as an input parameter (along with the $/ea. field 105 entry) by the dollars-to-francs transformation 312. The complications associated with transformations that occur between a target schema and a source schema (as part of relaying informational content from the source schema to the target schema) impose latency and high computational overhead in automated business flow software implementations. Moreover, these inefficiencies tend to scale with the amount of transformation processing that needs to be performed (e.g., if multiple transformations are to be performed, approximately, the latency/overhead grows by a factor of each transformation to be performed).